package com.itheima.topic2;

/*
    1 首先存在一个接口（StringHandler）
    2 在该接口中存在一个抽象方法（printMessage），该方法是有参数无返回值
    3 在测试类（StringHandlerDemo）中存在一个方法（useStringHandler），
        方法的的参数是StringHandler类型的，
        在方法内部调用了StringHandler的printMessage方法
 */
public class LambdaTest2 {
    public static void main(String[] args) {
        String str = "有参无返回";
        StringHandlerDemo stringHandlerDemo = new StringHandlerDemo();
        //方法一：普通形式
       stringHandlerDemo.useStringHandler(new StringHandler() {
           @Override
           public void printMessage(String s) {
               System.out.println(str);
           }
       },str);


        //"方法二：使用Lambda"
        stringHandlerDemo.useStringHandler(System.out::println,str);
    }

}




// 1 首先存在一个接口（StringHandler）
// 2 在该接口中存在一个抽象方法（printMessage），该方法是有参数无返回值
interface StringHandler{
    void printMessage(String s);
}

class StringHandlerDemo{
    //成员方法
    void useStringHandler(StringHandler stringHandler,String str){
        stringHandler.printMessage(str);
    }
}